The present invention relates generally to interface devices for allowing humans to interface with computer systems, and more particularly to computer interface devices that provide input from the user to computer systems and implement force feedback to the user.
Using an interface device, a user can interact with an environment displayed by a computer system to perform functions and tasks on the computer, such as playing a game, experiencing a simulation or virtual reality environment, using a computer aided design system, operating a graphical user interface (GUI), or otherwise influencing events or images depicted on the screen. Common human-computer interface devices used for such interaction include a joystick, mouse, trackball, stylus, tablet, pressure-sensitive ball, or the like, that is connected to the computer system controlling the displayed environment. Typically, the computer updates the environment in response to the user's manipulation of a user-manipulatable physical object such as a joystick handle or mouse, and provides visual and audio feedback to the user utilizing the display screen and audio speakers. The computer senses the user's manipulation of the user object through sensors provided on the interface device that send locative signals to the computer.
In some interface devices, haptic feedback is also provided to the user, also known as "force feedback." These types of interface devices can provide physical sensations which are felt by the user manipulating a user manipulable object of the interface device. For example, the Force-FX joystick controller from CH Products, Inc. or the Wingman Force joystick from Logitech may be connected to a computer and provides forces to a user of the controller. Other systems might use a force feedback mouse controller. One or more motors or other actuators are used in the device and are connected to the controlling computer system. The computer system controls forces on the joystick in conjunction and coordinated with displayed events and interactions by sending control signals or commands to the actuators. The computer system can thus convey physical force sensations to the user in conjunction with other supplied feedback as the user is grasping or contacting the joystick or other object of the interface device. For example, when the user moves the manipulatable object and causes a displayed cursor to interact with a different displayed graphical object, the computer can issue a command that causes the actuator to output a force on the user object, conveying a feel sensation to the user.
A problem with the prior art development of force feedback sensations in software is that the programmer of force feedback applications does not have an intuitive sense as to how forces will feel when adjusted in certain ways, and thus must go to great effort to develop characteristics of forces that are desired for a specific application. For example, a programmer may wish to create a specific spring and damping force sensation between two graphical objects, where the force sensation has a particular stiffness, play, offset, etc. In current force feedback systems, the programmer must determine the parameters and characteristics of the desired force by a brute force method, by simply setting parameters, testing the force, and adjusting the parameters in an iterative fashion. This method can be cumbersome because it is often not intuitive how a parameter will affect the feel of a force as it is actually output on the user object; the programmer often may not even be close to the desired force sensation with initial parameter settings. Other types of forces may not be intuitive at all, such as a spring having a negative stiffness, and thus force sensation designers may have a difficult time integrating these types of sensations into software applications.
Furthermore, designers may have a difficult time synchronizing force sensations with sounds that the designer wishes to have played in conjunction with the force sensation. For example, a particular force sensation such as a collision is often accompanied by an appropriate sound to present the experience more effectively to an end user. However, it can be difficult to design a force sensation that is well-synchronized with a sound. Thus, a tool is needed for assisting the programmer or developer in intuitively and easily setting force feedback characteristics to provide desired force sensations and synchronize sounds with those force sensations.